Virtual mirror systems and methods

ABSTRACT

A virtual mirror system includes a frame, a first camera, a projector, a memory, and a control system. The first camera is coupled to the frame and is configured to generate first image data reproducible as one or more first images of at least a portion of a subject that is positioned within a first field of view of the first camera. The projector is configured to display images on a vertical surface. The memory stores machine readable instructions. The control system includes one or more processors configured to execute the machine readable instructions to cause the projector to display, on the vertical surface, a virtual mirror image of the subject based on the first image data.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is the National Phase of International ApplicationPCT/IB2020/057996, filed on Aug. 27, 2020, which designated the UnitedStates, which claims the benefit of and priority to U.S. ProvisionalPatent Application No. 62/892,367, filed on Aug. 27, 2019, each of whichis hereby incorporated by reference herein in its entirety.

TECHNICAL FIELD

The present disclosure relates to mirrors, more specifically, thepresent disclosure relates to virtual mirror systems and methods ofusing the same.

BACKGROUND

In their daily lives, people perform many tasks in front of mirrors,such as brushing their teeth, shaving, applying makeup, and generallygetting ready for their day. Typically, mirrors are fixed on a verticalsurface (e.g., a wall) in bathrooms or bedrooms in homes. That is,mirrors are often stationary such that a user must stand directly infront of the mirror to see themselves and perform the aforementionedtasks, for example. The present disclosure is directed to solving theseproblems and addressing other needs.

SUMMARY

According to implementations of the present disclosure, a systemincludes a frame, a first camera, a projector, a memory, and a controlsystem. The first camera is coupled to the frame and being configured togenerate first image data reproducible as one or more first images of atleast a portion of a subject that is positioned within a first field ofview of the first camera. The projector is configured to display imageson a vertical surface. The memory stores machine-readable instructions.The control system includes one or more processors configured to executethe machine readable instructions to cause the projector to display, onthe vertical surface, a virtual mirror image of the subject based on thefirst image data, wherein the virtual mirror appears to the subject as amirror image of the at least a portion of the subject.

According to some implementations of the present disclosure, a methodincludes receiving, from a first camera coupled to a frame, first imagedata reproducible as one or more first images of at least a portion of asubject that is positioned within a first field of view of the firstcamera. The method also includes generating a virtual mirror image ofthe portion of the subject based on the first image data from the firstcamera. The method also includes causing a projector coupled to theframe to display the virtual mirror image of the portion of the subjecton a vertical surface.

According to some implementations of the present disclosure, a virtualmirror system includes a first camera, a second camera, a project, amemory, and a control system. The first camera is configured to generatefirst image data that is associated with a subject when the subject ispositioned within a first field of view (FOV) of the first camera, thefirst camera being mounted such that a central axis of the first FOV isat a first angle relative to a first vertical plane and at a secondangle relative to a first horizontal plane. The second camera isconfigured to generate second image data that is associated with thesubject when the subject is positioned within a second field of view(FOV) of the second camera, the second camera being mounted such that acentral axis of the second FOV is at a third angle relative to a secondvertical plane and at a fourth angle relative to a second horizontalplane, the second camera being positioned relative to the first camerasuch that a portion of the first FOV overlaps with a portion of thesecond FOV. The projector is configured to emit electromagneticradiation onto a virtual mirror surface, the projector being mountedsuch that a central axis of the projector is at a fifth angle relativeto a third vertical plane and at a sixth angle relative to a thirdhorizontal plane. The memory storing machine readable instructions. Thecontrol system including one or more processors configured to executethe machine readable instructions to: generate a real-time video feed ofat least a portion of the subject based at least on the first image dataand the second image data and display on the virtual mirror surface,using the projector, at least a portion of the generated real-time videofeed of the portion of the subject.

According to some implementations of the present disclosure, a virtualmirror system includes a frame, a first camera, a second camera, amirror, a projector, a memory, and a control system. The first camera iscoupled to the frame and generates first image data reproducible as oneor more first images of at least a portion of a subject that ispositioned within a first field of view of the first camera. The secondcamera generates second image data reproducible as one or more secondimages of at least a portion of the subject that is positioned within asecond field of view of the second camera. The mirror coupled to theframe and being positioned between the first camera and the secondcamera. The projector is coupled to the frame. The memory storingmachine readable instructions. The control system includes one or moreprocessors configured to execute the machine readable instructions togenerate a real-time video feed of at least a portion of the subjectbased on the first image data and the second image data and cause theprojector to continuously display the real-time video feed of theportion of the subject on at least a portion of the mirror.

The foregoing and additional aspects and implementations of the presentdisclosure will be apparent to those of ordinary skill in the art inview of the detailed description of various embodiments and/orimplementations, which is made with reference to the drawings, a briefdescription of which is provided next.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and other advantages of the present disclosure will becomeapparent upon reading the following detailed description and uponreference to the drawings.

FIG. 1 is a block diagram of a virtual mirror system, according to someimplementations of the present disclosure;

FIG. 2A is a front elevation view of a virtual mirror system, accordingto some implementations of the present disclosure;

FIG. 2B is a side view of the virtual mirror system of FIG. 2A,according to some implementations of the present disclosure;

FIG. 3 is a plan view of the virtual mirror system of FIGS. 2A-2B,according to some implementations of the present disclosure;

FIG. 4A is an exemplary first image of a subject generated by a firstcamera of the virtual mirror system of FIGS. 2A-2B at a first point ofview, according to some implementations of the present disclosure;

FIG. 4B is an exemplary second image of the subject generated by asecond camera of the virtual mirror system of FIGS. 2A-2B at a secondpoint of view, according to some implementations of the presentdisclosure;

FIG. 5 is perspective view of the virtual mirror system of FIGS. 2A-2Bwith a virtual mirror image projected onto a vertical surface, accordingto some implementations of the present disclosure; and

FIG. 6 is a process flow diagram for a method of displaying a virtualmirror image of a subject, according to some implementations of thepresent disclosure.

While the present disclosure is susceptible to various modifications andalternative forms, specific implementations and embodiments have beenshown by way of example in the drawings and will be described in detailherein. It should be understood, however, that the present disclosure isnot intended to be limited to the particular forms disclosed. Rather,the present disclosure is to cover all modifications, equivalents, andalternatives falling within the spirit and scope of the presentdisclosure as defined by the appended claims.

DETAILED DESCRIPTION

Referring to FIG. 1 , a virtual mirror system 100 includes a frame 102,one or more cameras 104, one or more processors 106, one or more memorydevices 108, and a projector 110. The virtual mirror system 100 uses theprojector 110 to display a virtual mirror image (see FIG. 5 ) of asubject on a vertical surface based on image data generated from the oneor more cameras 104. The virtual mirror image appears to the subject asif the subject were standing in front of a mirror even though, in someimplementations, no mirror is present in front of the subject.

The frame 102 is configured to be coupled to and/or mounted on (e.g.,directly or indirectly) a wall, a counter (e.g., a bathroom vanity),furniture, or any other structure. The one or more cameras 104 arecoupled to and/or mounted on (e.g., directly or indirectly) the frame102. The one or more cameras 104 can be digital cameras, infrared (IR)cameras, three-dimensional cameras (e.g., depth cameras), or any othertype of camera. In implementations where the one or more cameras 104includes a plurality of cameras, the multiple cameras can be the sametype of camera (e.g., two digital cameras) or different types ofcameras. The one or more cameras 104 are configured to generate imagedata reproducible as one or more images (e.g., still images, videoimages, or both). The virtual mirror system 100 can include one camera104, two cameras 104, three cameras 104, five cameras 104, etc. that arecoupled to and/or mounted on different locations of the frame 102 (e.g.,opposite sides of the frame 102).

The memory device 108 generally contains processor-executableinstructions that when executed by the one or more processors 106 causethe one or more processors 106 to actuate and/or control the variouscomponents of the virtual mirror system 100 (e.g., actuate the cameras104 and cause the cameras 104 to generate image data, cause theprojector to display an image or video feed, etc.). The memory device108 can also store the image data generated by the one or more cameras104.

The virtual mirror system 100 also includes a power source 120 forproviding power to the one or more processors 106, the memory device108, and the other various components of the virtual mirror system 100.The power source 120 can include an AC power source, a battery (e.g., arechargeable battery), or both.

The projector 110 is coupled to the frame 102 (e.g., generally between afirst camera and a second camera of the one or more cameras 104) and isgenerally configured to display images (e.g., still images, videoimages, or both) on a surface. More specifically, the projector 110 isconfigured to emit electromagnetic radiation onto a surface to cause theimage(s) to be displayed on the surface. In particular, the one or moreprocessors 106 are configured to cause the projector 110 to displayimage(s) generated by the one or more cameras 102. In someimplementations, the displayed image(s) are a real-time video feed thatrepresents a subject standing adjacent to (e.g., in front of) thevirtual mirror system 100.

In some implementations, the projector 110 is a short-throw projectorand/or an ultra-short-throw projector. The term “throw” refers to thedistance between the projector 110 and the surface to be projected on bythe projector 110. Short-throw and ultra-short-throw projectors includeone or more lenses with a wide angle that allow the projector 110 to bepositioned close to the surface to be projected on while maintaining aclear image. For example, a short-throw or ultra-short-throw projectorcan be positioned between about 1 inch and about 36 inches away from thesurface to be projected on, between about 3 inches and about 30 inchesaway from the surface to be projected on, between about 6 inches andabout 24 inches away from the surface to be projected on, etc. The term“throw ratio” refers to the ratio of the throw distance and the sized ofthe projected display (e.g., if the projector is 1 foot away from thescreen and the display is 1 foot, the throw ratio is 1). The projector110 can have a throw ratio that is between about 0.4 and about 1,between about 0.6 and about 0.8, between about 0.3 and about 0.5, etc.For example, if the throw ratio is 0.4 and the projector 110 ispositioned 6 inches away from the surface to be projected on, thedisplay is 24 inches (typically measured diagonally). In someimplementations, the projector 110 includes one or moremicroelectromechanical systems (MEMS) and/or one or more mirrorsconfigured to aid in projecting the image(s) onto to the surface, forexample, if the surface is not within the direct line of sight of thelens of the projector 110.

In some implementations, the virtual mirror system 100 also optionallyincludes one or more sensors 112, one or more light sources 114, amirror 116, an electronic display 118, or any combination thereof. Theone or more sensors 112 are coupled to the frame 102 and can include aplurality of different types of sensors. For example, the sensors 112can include a motion or proximity sensor (e.g., that useselectromagnetic radiation) configured to detect the presence of anobject or person in front of the virtual mirror system 100 (which cancause the processors 106 to actuate the cameras 104, for example) and/ora depth sensor configured to determine a distance between the object orperson from the frame 102.

The optional one or more light sources 114 are coupled to the frame 102and generally used for illumination of the subject adjacent to thevirtual mirror system 100. The light sources 114 can be light emittingdiodes (LEDs) having variable color and intensity values that can becontrolled by the processor 106. Alternatively, the light sources 114can be incandescent light bulbs, halogen light bulbs, fluorescent lightbulbs, black lights, discharge lamps, or any other suitable lightsource. The light sources 114 can also be rotationally ortranslationally coupled to the frame 102 or other parts of the virtualmirror system 100 such that the light sources 114 can be physicallyadjusted by a user and emit light in different directions. The lightsources 114 could also be disposed in individual housings that arephysically separated from the frame 102. The light sources 114 areconfigured to produce light that is generally directed outward away fromthe frame 102 and toward an object or user or subject adjacent to thevirtual mirror system 100. The light produced by the one or more lightsources 114 can thus be used to illuminate the user (or any otherobject). Because they are variable in color and intensity, the lightsources 114 can thus be used to adjust the ambient light conditionssurrounding the user.

The optional mirror 116 is of a type that is generally referred to as aone-way mirror, although it is also sometimes referred to as a two-waymirror. The mirror 116 can be configured transmit a first portion oflight that is incident on its surfaces to the other side of the mirror,and to reflect a second portion of the light that is incident on itssurfaces. This may be accomplished by applying a thin layer of apartially reflective coating to a generally transparent substratematerial, such that less than all of the incident light is reflected bythe partially reflecting coating. The remaining light is transmittedthrough the mirror 116 to the other side thereof. Similarly, some lightthat strikes the mirror 116 on a side opposite the side where a user isstanding will be transmitted through the mirror 116, allowing the userto see that transmitted light. This partially reflective coating cangenerally be applied to a surface of the substrate material on thedisplay-side of the substrate material, the user-side of the substratematerial, or both. The user-side of the substrate is the side or surfaceof the mirror that faces a user. The display-side of the substrate isthe opposite side as the user-side, and faces the surface to which themirror is coupled. Thus, the partially reflective coating can be presenton the surface of one or both of the display-side and the user-side ofthe mirror 116. In some implementations, the partially reflectivecoating is made of silver. The generally transparent material can beglass, acrylic, or any other suitable material. The mirror 116 can havea rectangular shape, an oval shape a circle shape, a square shape, atriangle shape, or any other shape and/or combination thereof.

The display 118 is coupled to or mounted on the frame. The electronicdisplay 118 can be any suitable device, such as an LCD screen, an LEDscreen, a plasma display, an OLED display, a CRT display, or the like.As described herein, in some implementations, the virtual mirror system100 optionally includes the mirror 116. In such implementations, thedisplay 118 can be positioned in close proximity to the mirror 116. Dueto the partially reflective nature of the mirror 116, when the display118 is activated (e.g., turned on and emitting light to display animage), a user standing on the user-side of the mirror 116 is able toview any portion of the display 118 that is emitting light through themirror 116. When the display 118 is turned off, light that is incidenton the user-side of the mirror 116 from the surroundings will bepartially reflected and partially transmitted. Because the display 118is off, there is no light being transmitted through the mirror 116 tothe user-side of the mirror 116 from the display-side. Thus, the userstanding in front of the mirror 116 will see their reflection due tolight that is incident on the user-side of the mirror 116 and isreflected off of the mirror 116 back at the user. When the display 118is activated, a portion of the light produced by the display 118 that isincident on the mirror 116 from the display-side is transmitted throughthe mirror 116 to the user-side. The mirror 116 and the display 118 aregenerally configured such that the intensity of the light that istransmitted through the mirror 116 from the display 118 at any givenpoint is greater than the intensity of any light that is reflected offof that point of the mirror 116 from the user-side. Thus, a user viewingthe mirror 116 will be able to view the portions of the display 118 thatare emitting light, but will not see their reflection in the portions ofthose mirror 116 through which the display light is being transmitted.

Referring to FIG. 2A, a virtual mirror system 200 that is the same as,or similar to, the virtual mirror system 100 (FIG. 1 ) includes a frame202, a first camera 204A, a second camera 204B, and a projector 210. Asshown, the frame 202 is coupled to or mounted on a vertical surface 220.The frame 202 has a generally rectangular shape and includes a leftvertical segment 202A, an upper horizontal segment 202B, a rightvertical segment 202C, and a lower horizontal segment 202D. While theframe 202 is shown as being generally rectangular, the frame 202 canhave any other shape (e.g., circular, oval, triangular, polygonal, orany combination thereof).

The vertical surface 220 can be, for example, a wall (e.g., drywall,concrete, wood, etc.). As described herein, in some implementations, thevirtual mirror system 200 optionally includes a mirror (not shown) thatis the same as, or similar to, the mirror 116. In such implementations,the mirror can be coupled to and/or mounted on the vertical surface 220.

The first camera 204A and the second camera 204B of the virtual mirrorsystem 200 are the same as, or similar to, the one or more cameras 104of the virtual mirror system 100 (FIG. 1 ) described herein. As shown,the first camera 204A is coupled to the left vertical segment 202A ofthe frame 202 and the second camera 204B is coupled to the rightvertical segment 202B of the frame 202. The first camera 204A and/or thesecond camera 204B can be coupled to an outer surface of the frame 202or, alternatively, the first camera 204A and/or the second camera 204Bcan be coupled to the frame 202 such that the first camera 204A and/orthe second camera 204B are partially or fully integrated and/or recessedwithin a portion of the frame 202. More generally, the first camera 204Aand/or the second camera 204B can be positioned at any location on theframe 202. For example, in some implementations, both the first camera204A and the second camera 204B can be coupled to the upper horizontalsegment 202B or the lower horizontal segment 202D.

While the first camera 204A and the second camera 204B are shown in FIG.2A as being generally aligned along a horizontal axis, in someimplementations, the first camera 204A and the second camera 204B can bepositioned such that the first camera 204A and the second camera 204Bare aligned along a vertical axis (e.g., both the first camera 204A andthe second camera 204B are positioned on the left vertical segment 202Aof the frame 202). Alternatively, in some implementations, the firstcamera 204A and the second camera 204B are not aligned along either ahorizontal axis or a vertical axis. For example, in suchimplementations, the first camera 204A can be positioned in a top leftcorner of the frame 202 (e.g., in the general area where the leftvertical segment 202A meets the upper horizontal segment 202B) and thesecond camera 204B can be positioned in a bottom right corner of theframe 202 (e.g., in the general area where the right vertical segment202C meets the lower horizontal segment 202D). Moreover, while thevirtual mirror system 200 is shown as having two cameras (first camera204A and second camera 204B), more generally, the virtual mirror system200 can have any suitable number of cameras (e.g., one camera, threecameras, four cameras, etc.)

The first camera 204A and the second camera 204B are preferably coupledto the frame 202 such that they are positioned at approximately eyelevel of a subject standing in front of the virtual mirror system 200.That is, the first camera 204A and the second camera 204B are positionedat a height relative to a floor or other surface that the subject isstanding on so that they are approximately eye level with the subject.The height can be, for example, between about 4 feet and about 6 feet,between about 4.5 feet and about 5.5 feet, about 5 feet (whichapproximates an average eye level), etc. In some implementations, thefirst camera 204A and the second camera 204B are moveable relative tothe frame 202 to adjust the height of the first camera 204A and thesecond camera 204B relative to the eye level of a particular subject(e.g., the subject can manually move the first camera 204A and/or thesecond camera 204B so that they are at eye level). In someimplementations, the virtual mirror system 200 is configured to detectthe eyes of the subject (e.g., by applying facial recognition algorithmsto the first image data and/or second image data) and automaticallyadjust the vertical position of the first camera 202A and/or the secondcamera 202B to account for subjects having different heights.Alternatively, in some implementations, the frame 202 or a portion ofthe frame 202 is moveable relative to the vertical surface 220 toposition the first camera 204A and the second camera 204B atapproximately eye level of the subject. Positioning the first camera204A and the second camera 204B at approximately eye level aids inprocessing the generated image data and generating the virtual mirrorimage of a subject, which is described in further detail herein. Forexample, as shown in FIG. 5 , the first camera 204A and the secondcamera 504B are generally eye-level with the subject 400 in the virtualmirror image 500.

The projector 210 is the same as, or similar to, the projector 110 ofthe virtual mirror system 100 (FIG. 1 ) described herein. Morespecifically, the projector 210 is a short-throw and/or ultra-shortthrow projector configured to emit electromagnetic radiation to displayone or more images on the vertical surface 220, as best shown in FIG.2B. The projector 210 is coupled to the frame 202 such that a distancebetween a lens of the projector 210 and the vertical surface 220 isbetween about 6 inches and about 24 inches, for example. The closeproximity of the projector 210 and the vertical surface 220 allows theimage(s) to be projected onto the vertical surface 220 without a subjector other object blocking or casting a shadow on the projected image. Forexample, if the projector 210 were mounted (e.g., on a ceiling) suchthat a subject could stand between the vertical surface 220 and theprojector 210, the subject may obscure or block the projected image.However, because the projector 210 is in close proximity to the verticalsurface 220, it is very unlikely that the subject will be standingbetween the lens of the projector 210 and the vertical surface 220.

While the projector 210 is shown in FIGS. 2A and 2B as being coupled ormounted to the upper horizontal segment 202B of the frame 202, moregenerally, the projector 210 can be coupled or mounted to any locationon the frame 202 (e.g., the left vertical segment 202A, the rightvertical segment 202C, or the lower horizontal segment 202D). In someimplementations, the virtual mirror system 200 is positioned above avanity or cabinet in a bathroom or bedroom, for example. In suchimplementations, it is advantageous for the projector 210 to be coupledor mounted to the upper horizontal segment 202 so that the projector 210(which protrudes from the frame 202) does not interfere or impede accessto a countertop or a sink. Alternatively, in some implementations, theprojector 210 can be coupled or mounted to a ceiling or other structurewithin a close proximity (e.g., between about 6 inches and 24 inches) ofthe vertical surface 220.

In some implementations, the virtual mirror system 200 also includes amirror, one or more sensors, one or more light sources, a display, orany combination thereof, which are the same as, or similar to, the oneor more sensors 112, the one or more lights sources 114, the mirror 116,and the display 118 of the virtual mirror system 100 (FIG. 1 ) describedherein. For example, in such implementations, the mirror can be coupledto the frame 202 such that the segments 202A-202D form a border orperimeter around the mirror. As described herein, the mirror can be onlypartially reflective such that the image(s) projected by the projector210 are visible to a subject standing in front of the mirror.

In implementations where the virtual mirror system 200 includes one ormore sensors, these sensors can be used to allow a user (e.g., thesubject 400) to interact with the displayed image(s). The sensors can beconfigured to detect the presence of a hand, finger, face, or other bodypart of the user when the user is within a threshold distance from theframe 202 and/or vertical surface 220. When the sensors detect thepresence of the user aligned with a threshold distance, the processor isconfigured to cause the system 200 to react as if the user had touchedor clicked a touchscreen display on the vertical surface 220 and/or theframe 202. Thus, the sensors are able to transform the frame 202 and/orvertical surface 220 into a virtual touch-sensitive display, where theuser can interact with and manipulate the virtual display (projected bythe projector 210) by touching the frame 202 and/or the vertical surface220 located within the frame 202, or even bringing their fingers, hands,face, other body part in close proximity thereto. The sensors (whetherIR transmitter/receiver pairs and/or proximity sensors) can be used todetermine different types of interactions between the user and thesystem 200. For example, the system 200 can determine whether the usingis swiping horizontally (left/right), vertically (up/down), diagonally(a combination of left/right and up/down), or any combination thereof.The system 200 can also detect when the user simply taps somewhereinstead of swiping. For example, a user-selectable icon may be projectedor displayed on the vertical surface 220 via the projector 210, and theuser can select the user-selectable icon through gestures. A variety ofdifferent applications and programs can be run by the processor anddisplayed on the vertical surface 220 via the projector 210, includingtouch-based applications designed for use with touch screens, such asmobile phone applications.

Referring to FIG. 3 , the first camera 204A has a first field of view304A having a central axis 306A. Similarly, the second camera 204B has asecond field of view 304B having a central axis 306B. The central axis306A of the first field of view 304A is at a first angle θ₁ relative toa first vertical axis 308A (which is parallel to the central axis 310 ofthe frame 202). Similarly, the central axis 306B of the second field ofview 304B is at a second angle θ₂ relative to a second vertical axis308B (which is parallel to the central axis 310 of the frame 202). Thefirst angle θ₁ can be the same as, or different than, the second angleθ₂. The first angle θ₁ and the second angle θ₂ can be between about 0degrees and about 45 degrees, between about −30 degrees and about 75degrees, between about −10 degrees and about 10 degrees, between about30 degrees and about 60 degrees, or between about 0 degrees and 30degrees. As shown in FIG. 3 , the first field of view 304A and thesecond field of view 304B overlap with one another at an area 320(shaded area). Alternatively, the first field of view 304A and thesecond field of view 304B may not overlap with one another depending onthe value of the first angle θ₁ and/or the second angle θ₂ and/or thescope/size of the field of views 304 a, 304B of the first camera 204Aand the second camera 204B. Further, while the central axis 306A and thecentral axis 306B are shown as intersecting in FIG. 3 , in someimplementations, the central axis 306A and the central axis 306B do notintersect (e.g., the first angle θ₁ and the second angle θ₂ are both 0degrees or less).

When a subject (e.g., a human) is positioned in front of the virtualmirror system 200 and at least a portion of the subject is within thefirst field of view 304A of the first camera 204 and the second field ofview 304B of the second camera 204B, the first camera 204A has a firstpoint of view of the subject that is different than a second point ofview of the second camera 204B. This difference in points of view of thecameras is caused by the different positions of the first camera 204Aand the second camera 204B relative to the subject.

For example, referring to FIG. 4A, an exemplary image 402A of a subject400 generated by the first camera 204A is shown. In the image 402A, theface of the subject 400 is turned slightly away from the central axis306A (FIG. 3 ) of the first camera 204B. That is, the image 402A has afirst point of view of the subject 400 that is based on the position andorientation of the subject 400 relative to the central axis 306A (FIG. 3) of the first camera 204A. Referring to FIG. 4B, an exemplary image402B of the subject 400 (where the subject 400 was positioned at thesame location and orientation as when the image 402A was generated)generated by the second camera 204B is shown. In the image 402B, thesubject 400 is shown at a different orientation relative to the secondcamera 204B than the orientation relative to the first camera 204A. Thatis, as shown by a comparison of FIGS. 4A and 4B, the first camera 204Ahas a different point of view of the subject 400 than the second camera204B.

Referring to FIG. 5 , an exemplary virtual mirror image 500 of thesubject 400 (FIGS. 4A-4B) is displayed (projected) by the projector 210onto the vertical surface 220 within the frame 202. As described infurther detail herein, the virtual mirror image 500 is generated basedon the first image data from the first camera 204A and the second imagedata from the second camera 204B. As shown, the subject 400 appears inthe virtual mirror image 500 as if the subject 400 is standing directlyin front of the frame 202. In other words, from the subject'sperspective, the virtual mirror image 500 appears to be the same orsubstantially the same as if the subject 400 were standing in front of amirror, even though no mirror is present within the frame 202 (e.g., inthis implementation). When the subject is only within the field of viewof one of the first camera 204A or the second camera 204B, the virtualmirror image 500 is generated based on the image data from that camera(e.g., if the subject is only within the first field of view 304A (FIG.3 ), the virtual mirror image 500 is generated based on only the firstimage data). In some implementations, the virtual mirror image 500 iscontinuously updated in substantially real-time (e.g., with littlelatency) based on continuously generated image data from the firstcamera 204A and/or the second camera 204B to create a substantiallyreal-time virtual mirror video image of the subject 400. The latency canbe less than about 20 milliseconds, less than about 10 milliseconds,less than about 5 milliseconds, less than about 2 milliseconds, betweenabout 10 microseconds and about 50 microseconds, etc. As used herein,the term “real-time” as used at least in connection with the virtualmirror image 500, refers to implementations where the system 200processes the first image data and/or the second image data and displaysthe virtual mirror image 500 within the time frames or periods discussedherein.

While the virtual mirror image 500 is shown as being a front facing viewof the subject 400 (e.g., as if the subject 400 were looking directlystraight at a mirror), in some implementations, the virtual mirror image500 can be a profile or partial profile view of the subject 400. Inother implementations, the virtual mirror system 200 includes a thirdcamera (not shown) that is positioned behind the subject 400. In suchimplementations, the third camera is configured to generate third imagedata reproducible as one or more images of at least a portion of thesubject 400. Given the relative position of the third camera behind thesubject 400, a third field of view of the third camera is generallydirected in the opposite direction as the first field of view 304A ofthe first camera 204A and the second field of view 304B of the secondcamera 204B (FIG. 3 ). Thus, for example, while a first side of thesubject 400 (e.g., a face) is facing the first and second cameras204A-204B, a second opposing side of the subject 400 (e.g., the back ofthe head) is facing the third camera. In such implementations, theprojector 210 can project a reverse virtual mirror image of the subject400 similarly to the virtual mirror image 500. However, the reversevirtual mirror image of the subject 400 appears as if the subject 400 islooking directly at the opposite side of their body as the side thatwould be facing a mirror. This is advantageous compared to aconventional mirror, where the subject 400 could not see the side orportion of their body that is not facing the mirror. The virtual mirrorsystem 200 can be configured to toggle between the virtual mirror image500 and the reverse virtual mirror image so that the user can see allsides or portions of their body displayed on the vertical surface 220.

Referring to FIG. 6 , a process-flow diagram of a method 600 forgenerating a virtual mirror image of a subject (e.g., a human being) isillustrated. While the method 600 is described herein as beingimplemented using the virtual mirror system 200 (FIGS. 2A-5 ), moregenerally, the method 600 can be implemented using a system that is thesame as, or similar to, the virtual mirror system 100 (FIG. 1 ) and/orthe virtual mirror system 200 (FIGS. 2A-5 ).

The first step 601 of the method 600 includes generating first imagedata reproducible as one or more first images of at least a portion ofthe subject 400 using the first camera 204A. The first image data can bestored in one or more memory devices of the virtual mirror system 200for later processing by one or more processors of the virtual mirrorsystem 200 during step 603 of the method 600. The generation of thefirst image data during the first step 601 can be automaticallytriggered by one or more processors of the virtual mirror system 200.For example, in implementations in which the virtual mirror system 200includes one or more sensors (e.g., a proximity sensor or a motionsensor), the processors can actuate the first camera 204A responsive todetecting that a subject is within a predetermined distance or proximityof the frame 202 (e.g., 1 foot, 2 feet, six feet, ten feet, etc.)Alternatively, the generation of the first image data during the firststep 601 can be actuated or triggered manually by, for example, thesubject. Alternatively, the generation of the first image data can becontinuous and never off, such that the virtual mirror system 200 isalways on and acting as a virtual mirror whether motion is detected inits vicinity or not.

The second step 602 of the method 600 is similar to the first step 601of the method 600 and includes generating second image data reproducibleas one or more second images of at least a portion of the subject (e.g.,subject 400) using the second camera 204B. Step 602 can be substantiallysimultaneous and/or synchronized with step 601. That is, the firstcamera 204A and the second camera 204B can generate the first image dataand the second image data, respectively, at the same time and/or atabout the same time. In some implementations, only one of step 601 and602 is performed if the subject is only positioned within the field ofview of one of the first camera 204A and the second camera 204B.

The third step 603 of the method 600 includes generating the virtualmirror image 500 of the subject 400 (FIG. 5 ) based on the first imagedata, the second image data, or both. As described herein, the virtualmirror image 500 appears to the subject 400 as if the subject 400 isstanding directly in front of a mirror, even though first camera 204Aand/or the second camera 204B do not have such a point of view of thesubject 400. Various algorithms (e.g., machine learning algorithms) canbe applied to the first image data and/or the second image data togenerate the virtual mirror image 500 having this point of view. For oneexample, a generative adversarial network (GAN) can be used to generatethe virtual mirror image 500. A GAN typically uses two neural networks:a generative network and a discriminative network. In cases where boththe first image data and the second image data is used to generate thevirtual mirror image 500, the merging of the first image data and thesecond image data using heuristics or other algorithms can correctocclusion and generally leads to a more accurate virtual mirror image500 than using the first image data or the second image data alone. Insome implementations, generating the virtual mirror image 500 duringstep 603 includes generating a three-dimensional model of at least aportion of the subject (e.g., the face or head) using the first imagedata and/or the second image data. Various points of view of the subject400 (e.g., front facing, profile, partial profile) can then be generatedbased on the three-dimensional model of the subject 400.

The fourth step 604 of the method 600 includes displaying the virtualmirror image 500 of the subject 400 generated during the third step 603on the vertical surface 220 using the projector 210. As shown in FIG. 5, the projector 210 projects the virtual mirror image 500 onto thevertical surface 220 such that the virtual mirror image 500 appears asif the subject 400 is standing directly in front of a mirror. Thevirtual mirror image 500 can be displayed continuously, or for apredetermined time period (e.g., five seconds, ten seconds, thirtyseconds, one minute, ten minutes, etc.)

In some implementations, the method 600 optionally includes a fifth step605, which includes augmenting the virtual mirror image 500 that isdisplayed during the fourth step 604. For example, in someimplementations, the user (e.g., the subject 400) can select the pointof view of the subject 400 in the virtual mirror image 500 (e.g., apartial profile view of the subject 400), providing up to a 360 degreevisualization of the subject 400. This allows the subject 400 to seemany different points of view of the subject 400 that would nototherwise be visible if the subject 400 were simply looking at a mirror.In some implementations, augmenting the virtual mirror image 500includes zooming in (e.g., magnifying) or zooming out an area ofinterest in the virtual mirror image 500 (e.g., responsive to one of theuser inputs described herein). The area of interest could be the eyes,noses, ears, mouth, teeth, etc., or any other feature on the subject400. In such implementations, the projector 210 can display instructionsthat indicate to the subject 400 how to manipulate the magnification ofthe virtual mirror image 400 (e.g., by pinching and/or swiping).

As another example, in some implementations, augmenting the virtualmirror image 500 during step 605 can assist the subject 400 inconducting activities (e.g., applying makeup, brushing teeth, brushinghair, shaving, etc.) by highlighting portions of the face of the subject400 where they need to apply the product. For example, indicia can bedisplayed on portions of the virtual mirror image 500 to indicate to thesubject 400 where to conduct an activity (e.g., to show where the userneeds to apply a production). The indicia can have any suitable shape orform, such as dots, circles, squares, triangles, curves, arcs, arches,lines, any combination thereof, or any other suitable shape.Alternatively, the projector 210 can display an image or a series ofimages showing the steps (e.g., a tutorial) with the virtual mirrorimage 500 to aid the subject 400 in completing activities. In oneimplementation, the projector 210 displays an animated GIF (GraphicsInterchange Format) that shows the steps to the subject.

As yet another example, in some implementations, augmenting the virtualmirror image 500 includes allowing the subject 400 to see what they maylook like after the application of different types of products orprocedures, for example applying different hair dye or getting differenthair styles. The projector 210 can display a plurality ofuser-selectable options, each of which is associated with a uniquemodification of a first characteristic related to the subject 400.Responsive to the selection of one of the user-selectable options, thevirtual mirror image 500 can be modified to show the subject 400 withthe selected modification of the characteristic (e.g., hair color).

Other implementations of the virtual mirror system 200 are contemplatedin accordance with the present disclosure. For example, the system 200can connect to a multitude of other devices, such as mobile phones,laptop computers, desktop computers, online servers, fitness trackers,Internet-connected scales, cloud services, Internet-connected waterbottles, Internet-connected thermostats, or other devices. In some suchimplementations, the subject's smart phone and/or tablet can be used asan input device to control the system 200 by mirroring the virtualmirror image 500 on a display of the smart phone and/or tablet andallowing the user to control the system 200 by touching and/or tappingthe smart phone and/or tablet directly.

In some implementations, the sensors include a microphone that detectsand/or records the voice of the user. The data from the microphone canbe sent to the processor to allow the user to interact with the systemusing their voice. The system 200 can also include one or more speakersto play music, podcasts, radio, or other audio. The one or more speakerscan also provide the user feedback or confirmation of certain actions ordecisions.

In some implementations, the virtual mirror system 200 uses an objectrecognition (OR) algorithm that utilizes principles of computer visionto detect and identify a variety of objects based on the still or videoimages captured by the first camera 204A and/or the second camera 204B.The processor(s) of the virtual mirror system 200 can be configured tomodify the execution of an application being executing by the processor,such as automatically launching a new application or taking a certainaction in an existing application, based on the object that is detectedand identified by the cameras and the processor. For example, followingthe detection of an object in the user's hand and the identification ofthat object as a toothbrush, the processor can be configured toautomatically launch a tooth-brushing application to run and bedisplayed using the projector 210. As another example, the processor canbe configured to automatically launch an application to assist the userin shaving upon detecting and identifying a razor, or an application toassist the user in applying makeup upon detecting and identifying anysort of makeup implement, such as lipstick, eye shadow, etc. The cameras204A and 204B can also recognize faces of users and differentiatebetween multiple users. For example, the camera 20 may recognize theperson standing in front of the frame 202 and execute an applicationthat is specific to that user. For example, the application coulddisplay stored data for that user, or show real-time data that isrelevant to the user.

One or more elements or aspects or steps, or any portion(s) thereof,from one or more of any of claims 1-42 below can be combined with one ormore elements or aspects or steps, or any portion(s) thereof, from oneor more of any of the other claims 1-42 or combinations thereof, to formone or more additional implementations and/or claims of the presentdisclosure.

While the present disclosure has been described with reference to one ormore particular implementations, those skilled in the art will recognizethat many changes may be made thereto without departing from the spiritand scope of the present disclosure. Each of these implementations andobvious variations thereof is contemplated as falling within the spiritand scope of the present disclosure. It is also contemplated thatadditional implementations according to aspects of the presentdisclosure may combine any number of features from any of theimplementations described herein.

What is claimed is:
 1. A virtual mirror system comprising: a frame; afirst camera coupled to a first segment of the frame and beingconfigured to generate first image data reproducible as one or morefirst images of at least a portion of a subject that is positionedwithin a first field of view of the first camera; a second cameracoupled to a second segment of the frame and being configured togenerate second image data reproducible as one or more second images ofat least a portion of the subject that is positioned within a secondfield of view of the second camera, the second camera being positionedrelative to the first camera such that a portion of the first field ofview overlaps with a portion of the second field of view to define avirtual mirror area; a projector configured to display images on asurface, wherein the projector is located on a user-side of the virtualmirror; a display configured to emit light on the surface, wherein thedisplay is located on a display-side of the virtual mirror; a memorystoring machine-readable instructions; and a control system includingone or more processors configured to execute the machine readableinstructions to: cause the projector to display, on the surface, avirtual mirror image of the subject based on the first image data andthe second image data, wherein the virtual mirror appears to the subjectas a mirror image of the at least a portion of the subject; and causethe display to emit light such that the light is visible on the surfaceto augment the virtual mirror image of the subject.
 2. The virtualmirror system of claim 1, wherein the projector is coupled to (i) theframe or (ii) a ceiling that is generally perpendicular to the surface.3. The virtual mirror system of claim 1, wherein the surface is a wallor a mirror coupled to the frame.
 4. The virtual mirror system of claim1, wherein the virtual mirror image of the subject is a still image or avideo image.
 5. The virtual mirror system of claim 1, wherein thevirtual mirror image is displayed in substantially real-time.
 6. Thevirtual mirror system of claim 1, wherein the first camera is coupled toa left vertical segment of the frame and the second camera is coupled toa right vertical segment of the frame.
 7. The virtual mirror system ofclaim 6, wherein the second camera is coupled to the frame such that thesecond camera is spaced from and parallel to the first camera.
 8. Thevirtual mirror system of claim 1, wherein the projector includes one ormore MEMs devices.
 9. The virtual mirror system of claim 1, wherein adistance between a lens of the projector and the surface is betweenabout 6 inches and about 24 inches.
 10. The virtual mirror system ofclaim 1, further comprising a depth sensor or one or more light sourcescoupled to the frame.
 11. The virtual mirror system of claim 1, whereinthe second field of a view is a front view of the subject, a profileview of the subject, or a partial profile view of the subject.
 12. Thevirtual mirror system of claim 1, wherein the first field of view is apartial profile view of the subject and the second field of view is afront view of the subject.
 13. The virtual mirror system of claim 1,wherein the virtual mirror image is generated using a generativeadversarial network (GAN).
 14. The virtual mirror system of claim 1,wherein the second field of view is different than the first field ofview.
 15. The virtual mirror system of claim 1, wherein the virtualmirror image has a third field of view of the subject that is differentthan the first field of view and the second field of view.
 16. A virtualmirror system comprising: a first camera positioned to a first side of asubject and configured to generate first image data that is associatedwith the subject when the subject is positioned within a first field ofview (FOV) of the first camera, the first camera being mounted such thata central axis of the first FOV is at a first angle relative to a firstvertical plane and at a second angle relative to a first horizontalplane; a second camera positioned to a second side of the subject andconfigured to generate second image data that is associated with thesubject when the subject is positioned within a second field of view(FOV) of the second camera, the second camera being mounted such that acentral axis of the second FOV is at a third angle relative to a secondvertical plane and at a fourth angle relative to a second horizontalplane, the second camera being positioned relative to the first camerasuch that a portion of the first FOV overlaps with a portion of thesecond FOV; a projector configured to emit electromagnetic radiationonto a virtual mirror surface, the projector being mounted such that acentral axis of the projector is at a fifth angle relative to a thirdvertical plane and at a sixth angle relative to a third horizontalplane, wherein the projector is located on a user-side of the virtualmirror; a display configured to emit light on the surface, wherein thedisplay is located on a display-side of the virtual mirror; a memorystoring machine readable instructions; and a control system includingone or more processors configured to execute the machine readableinstructions to: generate a real-time video feed of at least a portionof the subject based at least on the first image data and the secondimage data; display on the virtual mirror surface, using the projector,at least a portion of the generated real-time video feed of the portionof the subject; and cause the display to emit light such that the lightis visible on the surface to augment the real-time video feed of theportion of the subject.
 17. The system of claim 16, wherein the firstvertical plane, the second vertical plane, and the third vertical planeare parallel.
 18. The system of claim 16, wherein the first angle isbetween about 0 degrees and about 45 degrees, the second angle is about0 degrees and the fourth angle is about 0 degrees, the third angle isbetween about 0 degrees and about 45 degrees, the fourth angle is about0 degrees, the fifth angle is between about −10 degrees and about 10degrees, and the sixth angle is between about 0 degrees and about 60degrees.
 19. The system of claim 16, wherein the virtual mirror surfaceis generally perpendicular to the first vertical plane, the secondvertical plane, and the third vertical plane and to the first horizontalplane, the second horizontal plane, and the third horizontal plane. 20.A virtual mirror system comprising: a frame; a first camera coupled to afirst vertical segment of the frame, the first camera being configuredto generate first image data reproducible as one or more first images ofat least a portion of a subject that is positioned within a first fieldof view of the first camera; a second camera coupled to a secondvertical segment of the frame, the second camera being configured togenerate second image data reproducible as one or more second images ofat least a portion of the subject that is positioned within a secondfield of view of the second camera; a mirror coupled to the frame andbeing positioned between the first camera and the second camera; aprojector coupled to the frame, wherein the projector is located on auser-side of the mirror; a display configured to emit light on thesurface, wherein the display is located on a display-side of the mirror;a memory storing machine readable instructions; and a control systemincluding one or more processors configured to execute the machinereadable instructions to: generate a real-time video feed of at least aportion of the subject based on the first image data and the secondimage data; cause the projector to continuously display the real-timevideo feed of the portion of the subject on at least a portion of themirror; and cause the display to emit light such that the light isvisible on the surface to augment the virtual mirror image of thesubject.